const crypto/internal/fips140/mlkem.k
23 uses
crypto/internal/fips140/mlkem (current package)
mlkem768.go#L57: k = 3
mlkem768.go#L59: CiphertextSize768 = k*encodingSize10 + encodingSize4
mlkem768.go#L60: EncapsulationKeySize768 = k*encodingSize12 + 32
mlkem768.go#L61: decapsulationKeySize768 = k*encodingSize12 + EncapsulationKeySize768 + 32 + 32
mlkem768.go#L157: t [k]nttElement // ByteDecode₁₂(ek[:384k])
mlkem768.go#L158: a [k * k]nttElement // A[i*k+j] = sampleNTT(ρ, j, i)
mlkem768.go#L163: s [k]nttElement // ByteDecode₁₂(dk[:decryptionKeySize])
mlkem768.go#L277: g.Write([]byte{k}) // Module dimension as a domain separator.
mlkem768.go#L283: for i := byte(0); i < k; i++ {
mlkem768.go#L284: for j := byte(0); j < k; j++ {
mlkem768.go#L285: A[i*k+j] = sampleNTT(ρ, j, i)
mlkem768.go#L295: e := make([]nttElement, k)
mlkem768.go#L305: t[i] = polyAdd(t[i], nttMul(A[i*k+j], s[j]))
mlkem768.go#L406: for i := byte(0); i < k; i++ {
mlkem768.go#L407: for j := byte(0); j < k; j++ {
mlkem768.go#L408: ek.a[i*k+j] = sampleNTT(ek.ρ[:], j, i)
mlkem768.go#L421: r, e1 := make([]nttElement, k), make([]ringElement, k)
mlkem768.go#L432: u := make([]ringElement, k) // NTT⁻¹(AT ◦ r) + e1
mlkem768.go#L437: u[i] = polyAdd(u[i], inverseNTT(nttMul(ex.a[j*k+i], r[j])))
mlkem768.go#L501: u := make([]ringElement, k)
mlkem768.go#L507: b := (*[encodingSize4]byte)(c[encodingSize10*k:])